package Controlador;
import java.awt.event.ActionEvent;


import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;


import Modelo.MAccion;
import Modelo.MIngrediente;

import Vistas.VIngrediente;;

public class CIngrediente implements ActionListener{
	public VIngrediente vIngrediente;
	public MIngrediente mingrediente;
	public MAccion maccion;

	public CIngrediente(VIngrediente vingrediente){
		vIngrediente=vingrediente;
	}

		public void actionPerformed(ActionEvent ae) {
			if(ae.getActionCommand().equals(" Agregar ")){
				if(validarCampos()){
					if(validarLetras(vIngrediente.getTxtDesIng().getText())){
						if (validarCodigo(vIngrediente.getTxtCodIng().getText()+vIngrediente.getTxtExiIng().getText()+vIngrediente.getTxtStoMaxIng().getText()+vIngrediente.getTxtStoMinIng().getText())){
				mingrediente = new MIngrediente(Integer.parseInt(vIngrediente.getTxtCodIng().getText()),vIngrediente.getTxtDesIng().getText(),Float.parseFloat(vIngrediente.getTxtExiIng().getText()),Float.parseFloat(vIngrediente.getTxtStoMaxIng().getText()),Float.parseFloat(vIngrediente.getTxtStoMinIng().getText()));
				maccion = new MAccion();
                maccion.registrarIngrediente(mingrediente);
						}
						else
							JOptionPane.showMessageDialog(null,"Introduzca solo numeros","Cliente", 
									JOptionPane.INFORMATION_MESSAGE);
					}else
						 JOptionPane.showMessageDialog(null,"Verifique no se encuentren letras en en el nombre,apellido y direccion","Cliente", 
									JOptionPane.INFORMATION_MESSAGE);
                
					}
				else
					 JOptionPane.showMessageDialog(null,"Debes llenar todos los datos","Cliente", 
								JOptionPane.INFORMATION_MESSAGE);
			}
			
			if(ae.getActionCommand().equals("  Buscar  ")){
				MIngrediente ingrediente;
				maccion = new MAccion();
				if(!vIngrediente.getTxtCodIng().getText().equals("")){
				ingrediente=maccion.capturarIngrediente(Integer.parseInt(vIngrediente.getTxtCodIng().getText()));
				if(ingrediente!=null){
				 vIngrediente.getTxtDesIng().setText(ingrediente.getDescripcion());
				 vIngrediente.getTxtExiIng().setText(String.valueOf(ingrediente.getExistencia()));
				 vIngrediente.getTxtStoMaxIng().setText(String.valueOf(ingrediente.getStock_max()));
			     vIngrediente.getTxtStoMinIng().setText(String.valueOf(ingrediente.getStock_min()));
				}
				else
					JOptionPane.showMessageDialog(null,"El ingrediente no existe","Ingrediente", 
							JOptionPane.INFORMATION_MESSAGE);
			     }
				else
				JOptionPane.showMessageDialog(null,"Debe introducir el codigo del ingrediente","Ingrediente", 
						JOptionPane.INFORMATION_MESSAGE);
			}
			
			if(ae.getActionCommand().equals("Cancelar ")){
				vIngrediente.getTxtCodIng().setText("");
				vIngrediente.getTxtDesIng().setText("");
				vIngrediente.getTxtExiIng().setText("");
				vIngrediente.getTxtStoMaxIng().setText("");
				vIngrediente.getTxtStoMinIng().setText("");
				vIngrediente.getTxtCodIng().requestFocus();
						}
				
				if(ae.getActionCommand().equals("    Salir     ")){
					int opcion = JOptionPane.showConfirmDialog(new JFrame(),"Desea volver al menu anterior?",
							     "Mensaje de Confirmacion",JOptionPane.YES_NO_OPTION,
							     JOptionPane.QUESTION_MESSAGE);
					if (opcion == JOptionPane.YES_OPTION)
						vIngrediente.dispose();
				                         }
		}
		private boolean validarCodigo(String Ced){
			boolean valida=true;
			int resp;
			String numero="0123456789";
			char caracter;
		    for(int i=0;i<Ced.length();i++){
		    	caracter=Ced.charAt(i);
		        resp=numero.indexOf(caracter);
		    	if(resp==-1 && valida)
		    	valida=false;
		      }
			return valida;
				
		}
		private boolean validarCampos()
		{
			boolean sw=false;
			if ((!vIngrediente.getTxtDesIng().getText().equals("")) && (!vIngrediente.getTxtExiIng().getText().equals("")) && (!vIngrediente.getTxtStoMaxIng().getText().equals("")) && (!vIngrediente.getTxtStoMinIng().getText().equals("")))
			    sw=true;
			return sw;
		}
		private boolean validarLetras(String letras){
			boolean valida=true;
			int resp;
			String numero="0123456789";
			char caracter;
			if(letras.length()<60){
		    for(int i=0;i<letras.length();i++){
		    	caracter=letras.charAt(i);
		        resp=numero.indexOf(caracter);
		    	if(resp!=-1 && valida)
		    	valida=false;
		    	i++;
		      }		
		}
			return valida;	
		}

}

